package cn.itcast.dao;

import cn.itcast.entity.OrderQueryPageBean;
import cn.itcast.pojo.Order;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

public interface OrderDao {

    /**分页查询**/
    Page<Order> findPage(OrderQueryPageBean queryPageBean);

    /**新增预约信息**/
    void submit(Order order);

    /**根据id查询预约信息**/
    Order findById(String id);

    /**更新预约信息**/
    void update(Order order);

    //每月收入统计
    Integer findIncome(String date);

    /**
     * 每月预约数量统计
     */
    Integer findByOrderNumber(String date);

    /**
     * 每月支付数量统计
     */
  Integer findByPayNumber(String date);


    /**根据id删除预约信息**/
    void deleteById(String id);

    //今日预约数
    Integer findOrderCountByDate(String todayDate);

    //本周预约数
    Integer findOrderCountByWeek(String monday);

    //本月预约数
    Integer findOrderCountAfterDate(String firstDay4ThisMonth);

    //今日到诊数
    Integer findVisitsCountByDate(String todayDate);

    //本周到诊数
    Integer findVisitsCountByWeek(String monday);
    //本月到诊数
    Integer findVisitsCountAfterDate(String firstDay4ThisMonth);

    //热门套餐，查询前4条
    List<Map> findHotSetmeal();
    /**根据id修改用户预约状态**/
    void arrivalEdit(int event, String id);

    /**根据条件查询用户预约数量*/
    Long findOrderCountByCondition(Order condition);
}
